"""
Modules模块

当程序变得很长的时候，为了便于后续的维护，可以考虑将它分成好几个文件；
例如为了可以在其他文件中使用该函数的时候，也不需要整个函数复制过去

module的简单定义：
Py为了可以做到这个，Python把各种定义存入一个文件，在脚本或解释器的交互实例中使用，这个文件就是一个module(模块)
模块的定义还是可以导入到其他模块或者主模块中；

模块就是包含Python定义和语句的文件，文件名就是模块名+后缀名.py
在模块内部可以通过全局变量__name__获取模块名

当解释器执行import语句的时候，将会从以下路径搜索：
- 运行脚本的目录或者当前目录（如果解释器是交互式运行）
- 在安装Python时配置的依赖于安装的目录列表
- 

参考文档: https://docs.python.org/zh-cn/3/tutorial/modules.html#modules
"""

# 从finonacci导入fib函数
from fibonacci import fib
fib(20)

# 导入模块名
import fibonacci

# 给导入的模块起个别民，使用as起别名
import fibonacci as Fib
print(Fib.fiblist(12))

# 不建议使用from modulename import *

# 也可以将module的函数赋值给变量后在使用
fibonacciFib = fibonacci.fib
fibonacciFib(34)

# 内置函数dir() 用于查找模块定义的名称，返回结果是经过排序的字符串列表
print("dir(fibonacci) is {}".format(dir(fibonacci)))